﻿/**
 * bxSlider v4.2.1d
 * Copyright 2013-2017 Steven Wanderski
 * Written while drinking Belgian ales and listening to jazz
 * Licensed under MIT (http://opensource.org/licenses/MIT)
 */
!function (t) {
    var e = {
        mode: "horizontal",
        slideSelector: "",
        infiniteLoop: !0,
        hideControlOnEnd: !1,
        speed: 500,
        easing: null,
        slideMargin: 0,
        startSlide: 0,
        randomStart: !1,
        captions: !1,
        ticker: !1,
        tickerHover: !1,
        adaptiveHeight: !1,
        adaptiveHeightSpeed: 500,
        video: !1,
        useCSS: !1,
        //�Ƿ�ʹ��css3Ч��
        preloadImages: "visible",
        responsive: !0,
        slideZIndex: 50,
        wrapperClass: "bx-wrapper",
        touchEnabled: !0,
        swipeThreshold: 50,
        oneToOneTouch: !0,
        preventDefaultSwipeX: !0,
        preventDefaultSwipeY: !1,
        ariaLive: !0,
        ariaHidden: !0,
        keyboardEnabled: !1,

        //����������
        pager: !0,
        pagerType: "full",
        pagerShortSeparator: " / ",
        pagerSelector: null,
        buildPager: null,
        pagerCustom: null,
        controls: !0,
        nextText: "Next",
        prevText: "Prev",
        nextSelector: null,
        prevSelector: null,
        autoControls: !1,
        startText: "Start",
        stopText: "Stop",
        autoControlsCombine: !1,
        autoControlsSelector: null,

        auto: !1,
        pause: 4e3,
        autoStart: !0,
        autoDirection: "next",
        stopAutoOnClick: !1,
        autoHover: !1,
        autoDelay: 0,
        autoSlideForOnePage: !1,
        minSlides: 1,
        maxSlides: 1,
        moveSlides: 0,
        slideWidth: 0,
        shrinkItems: !1,
        onSliderLoad: function () {
            return !0
        },
        onSlideBefore: function () {
            return !0
        },
        onSlideAfter: function () {
            return !0
        },
        onSlideNext: function () {
            return !0
        },
        onSlidePrev: function () {
            return !0
        },
        onSliderResize: function () {
            return !0
        },
        onAutoChange: function () {
            return !0
        }
    };
    t.fn.bxSlider = function (n) {
        if (0 === this.length)
            return this;
        if (this.length > 1)
            return this.each(function () {
                t(this).bxSlider(n)
            }),
                this;
        var s = {}
            , o = this
            , r = t(window).width()
            , a = t(window).height();
        if (!t(o).data("bxSlider")) {
            var l = function () {
                t(o).data("bxSlider") || (s.settings = t.extend({}, e, n),
                    s.settings.slideWidth = parseInt(s.settings.slideWidth),
                    s.children = o.children(s.settings.slideSelector),
                    s.children.length < s.settings.minSlides && (s.settings.minSlides = s.children.length),
                    s.children.length < s.settings.maxSlides && (s.settings.maxSlides = s.children.length),
                    s.settings.randomStart && (s.settings.startSlide = Math.floor(Math.random() * s.children.length)),
                    s.active = {
                        index: s.settings.startSlide
                    },
                    s.carousel = s.settings.minSlides > 1 || s.settings.maxSlides > 1,
                    s.carousel && (s.settings.preloadImages = "all"),
                    s.minThreshold = s.settings.minSlides * s.settings.slideWidth + (s.settings.minSlides - 1) * s.settings.slideMargin,
                    s.maxThreshold = s.settings.maxSlides * s.settings.slideWidth + (s.settings.maxSlides - 1) * s.settings.slideMargin,
                    s.working = !1,
                    s.controls = {},
                    s.interval = null,
                    s.animProp = "vertical" === s.settings.mode ? "top" : "left",
                    s.usingCSS = s.settings.useCSS && "fade" !== s.settings.mode && function () {
                        for (var t = document.createElement("div"), e = ["WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"], i = 0; i < e.length; i++)
                            if (void 0 !== t.style[e[i]])
                                return s.cssPrefix = e[i].replace("Perspective", "").toLowerCase(),
                                    s.animProp = "-" + s.cssPrefix + "-transform",
                                    !0;
                        return !1
                    }(),
                    "vertical" === s.settings.mode && (s.settings.maxSlides = s.settings.minSlides),
                    o.data("origStyle", o.attr("style")),
                    o.children(s.settings.slideSelector).each(function () {
                        t(this).data("origStyle", t(this).attr("style"))
                    }),
                    d())
            }
                , d = function () {
                    var e = s.children.eq(s.settings.startSlide);
                    o.wrap('<div class="' + s.settings.wrapperClass + '"><div class="bx-viewport"></div></div>'),
                        s.viewport = o.parent(),
                        s.settings.ariaLive && !s.settings.ticker && s.viewport.attr("aria-live", "polite"),
                        s.loader = t('<div class="bx-loading" />'),
                        s.viewport.prepend(s.loader),
                        o.css({
                            width: "horizontal" === s.settings.mode ? 1e3 * s.children.length + 215 + "%" : "auto",
                            position: "relative"
                        }),
                        s.usingCSS && s.settings.easing ? o.css("-" + s.cssPrefix + "-transition-timing-function", s.settings.easing) : s.settings.easing || (s.settings.easing = "swing"),
                        s.viewport.css({
                            width: "100%",
                            overflow: "hidden",
                            position: "relative"
                        }),
                        s.viewport.parent().css({
                            maxWidth: u()
                        }),
                        s.children.css({
                            float: "horizontal" === s.settings.mode ? "left" : "none",
                            listStyle: "none",
                            position: "relative"
                        }),
                        s.children.css("width", h()),
                        "horizontal" === s.settings.mode && s.settings.slideMargin > 0 && s.children.css("marginRight", s.settings.slideMargin),
                        "vertical" === s.settings.mode && s.settings.slideMargin > 0 && s.children.css("marginBottom", s.settings.slideMargin),
                        "fade" === s.settings.mode && (s.children.css({
                            position: "absolute",
                            zIndex: 0,
                            display: "none"
                        }),
                            s.children.eq(s.settings.startSlide).css({
                                zIndex: s.settings.slideZIndex,
                                display: "block"
                            })),
                        s.controls.el = t('<div class="bx-controls" />'),
                        s.settings.captions && k(),
                        s.active.last = s.settings.startSlide === f() - 1,
                        s.settings.video && o.fitVids(),
                        "none" === s.settings.preloadImages ? e = null : ("all" === s.settings.preloadImages || s.settings.ticker) && (e = s.children),
                        s.settings.ticker ? s.settings.pager = !1 : (s.settings.controls && C(),
                            s.settings.auto && s.settings.autoControls && T(),
                            s.settings.pager && b(),
                            (s.settings.controls || s.settings.autoControls || s.settings.pager) && s.viewport.after(s.controls.el)),
                        null === e ? g() : c(e, g)
                }
                , c = function (e, i) {
                    var n = e.find('img:not([src=""]), iframe').length
                        , s = 0;
                    if (0 === n)
                        return void i();
                    e.find('img:not([src=""]), iframe').each(function () {
                        t(this).one("load error", function () {
                            ++s === n && i()
                        }).each(function () {
                            (this.complete || "" == this.src) && t(this).trigger("load")
                        })
                    })
                }
                , g = function () {
                    if (s.settings.infiniteLoop && "fade" !== s.settings.mode && !s.settings.ticker) {
                        var e = "vertical" === s.settings.mode ? s.settings.minSlides : s.settings.maxSlides
                            , i = s.children.slice(0, e).clone(!0).addClass("bx-clone")
                            , n = s.children.slice(-e).clone(!0).addClass("bx-clone");
                        s.settings.ariaHidden && (i.attr("aria-hidden", !0),
                            n.attr("aria-hidden", !0)),
                            o.append(i).prepend(n)
                    }
                    s.loader.remove(),
                        m(),
                        "vertical" === s.settings.mode && (s.settings.adaptiveHeight = !0),
                        s.viewport.height(p()),
                        o.redrawSlider(),
                        s.settings.onSliderLoad.call(o, s.active.index),
                        s.initialized = !0,
                        s.settings.responsive && t(window).on("resize", U),
                        s.settings.auto && s.settings.autoStart && (f() > 1 || s.settings.autoSlideForOnePage) && L(),
                        s.settings.ticker && O(),
                        s.settings.pager && z(s.settings.startSlide),
                        s.settings.controls && q(),
                        s.settings.touchEnabled && !s.settings.ticker && X(),
                        s.settings.keyboardEnabled && !s.settings.ticker && t(document).keydown(B)
                }
                , p = function () {
                    var e = 0
                        , n = t();
                    if ("vertical" === s.settings.mode || s.settings.adaptiveHeight)
                        if (s.carousel) {
                            var o = 1 === s.settings.moveSlides ? s.active.index : s.active.index * x();
                            for (n = s.children.eq(o),
                                i = 1; i <= s.settings.maxSlides - 1; i++)
                                n = o + i >= s.children.length ? n.add(s.children.eq(i - 1)) : n.add(s.children.eq(o + i))
                        } else
                            n = s.children.eq(s.active.index);
                    else
                        n = s.children;
                    return "vertical" === s.settings.mode ? (n.each(function (i) {
                        e += t(this).outerHeight()
                    }),
                        s.settings.slideMargin > 0 && (e += s.settings.slideMargin * (s.settings.minSlides - 1))) : e = Math.max.apply(Math, n.map(function () {
                            return t(this).outerHeight(!1)
                        }).get()),
                        "border-box" === s.viewport.css("box-sizing") ? e += parseFloat(s.viewport.css("padding-top")) + parseFloat(s.viewport.css("padding-bottom")) + parseFloat(s.viewport.css("border-top-width")) + parseFloat(s.viewport.css("border-bottom-width")) : "padding-box" === s.viewport.css("box-sizing") && (e += parseFloat(s.viewport.css("padding-top")) + parseFloat(s.viewport.css("padding-bottom"))),
                        e
                }
                , u = function () {
                    var t = "100%";
                    return s.settings.slideWidth > 0 && (t = "horizontal" === s.settings.mode ? s.settings.maxSlides * s.settings.slideWidth + (s.settings.maxSlides - 1) * s.settings.slideMargin : s.settings.slideWidth),
                        t
                }
                , h = function () {
                    var t = s.settings.slideWidth
                        , e = s.viewport.width();
                    if (0 === s.settings.slideWidth || s.settings.slideWidth > e && !s.carousel || "vertical" === s.settings.mode)
                        t = e;
                    else if (s.settings.maxSlides > 1 && "horizontal" === s.settings.mode) {
                        if (e > s.maxThreshold)
                            return t;
                        e < s.minThreshold ? t = (e - s.settings.slideMargin * (s.settings.minSlides - 1)) / s.settings.minSlides : s.settings.shrinkItems && (t = Math.floor((e + s.settings.slideMargin) / Math.ceil((e + s.settings.slideMargin) / (t + s.settings.slideMargin)) - s.settings.slideMargin))
                    }
                    return t
                }
                , v = function () {
                    var t = 1
                        , e = null;
                    return "horizontal" === s.settings.mode && s.settings.slideWidth > 0 ? s.viewport.width() < s.minThreshold ? t = s.settings.minSlides : s.viewport.width() > s.maxThreshold ? t = s.settings.maxSlides : (e = s.children.first().width() + s.settings.slideMargin,
                        t = Math.floor((s.viewport.width() + s.settings.slideMargin) / e) || 1) : "vertical" === s.settings.mode && (t = s.settings.minSlides),
                        t
                }
                , f = function () {
                    var t = 0
                        , e = 0
                        , i = 0;
                    if (s.settings.moveSlides > 0) {
                        if (!s.settings.infiniteLoop) {
                            for (; e < s.children.length;)
                                ++t,
                                    e = i + v(),
                                    i += s.settings.moveSlides <= v() ? s.settings.moveSlides : v();
                            return i
                        }
                        t = Math.ceil(s.children.length / x())
                    } else
                        t = Math.ceil(s.children.length / v());
                    return t
                }
                , x = function () {
                    return s.settings.moveSlides > 0 && s.settings.moveSlides <= v() ? s.settings.moveSlides : v()
                }
                , m = function () {
                    var t, e, i;
                    s.children.length > s.settings.maxSlides && s.active.last && !s.settings.infiniteLoop ? "horizontal" === s.settings.mode ? (e = s.children.last(),
                        t = e.position(),
                        S(-(t.left - (s.viewport.width() - e.outerWidth())), "reset", 0)) : "vertical" === s.settings.mode && (i = s.children.length - s.settings.minSlides,
                            t = s.children.eq(i).position(),
                            S(-t.top, "reset", 0)) : (t = s.children.eq(s.active.index * x()).position(),
                                s.active.index === f() - 1 && (s.active.last = !0),
                                void 0 !== t && ("horizontal" === s.settings.mode ? S(-t.left, "reset", 0) : "vertical" === s.settings.mode && S(-t.top, "reset", 0)))
                }
                , S = function (e, i, n, r) {
                    var a, l;
                    s.usingCSS ? (l = "vertical" === s.settings.mode ? "translate3d(0, " + e + "px, 0)" : "translate3d(" + e + "px, 0, 0)",
                        o.css("-" + s.cssPrefix + "-transition-duration", n / 1e3 + "s"),
                        "slide" === i ? (o.css(s.animProp, l),
                            0 !== n ? o.on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function (e) {
                                t(e.target).is(o) && (o.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),
                                    A())
                            }) : A()) : "reset" === i ? o.css(s.animProp, l) : "ticker" === i && (o.css("-" + s.cssPrefix + "-transition-timing-function", "linear"),
                                o.css(s.animProp, l),
                                0 !== n ? o.on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function (e) {
                                    t(e.target).is(o) && (o.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),
                                        S(r.resetValue, "reset", 0),
                                        F())
                                }) : (S(r.resetValue, "reset", 0),
                                    F()))) : (a = {},
                                        a[s.animProp] = e,
                                        "slide" === i ? o.animate(a, n, s.settings.easing, function () {
                                            A()
                                        }) : "reset" === i ? o.css(s.animProp, e) : "ticker" === i && o.animate(a, n, "linear", function () {
                                            S(r.resetValue, "reset", 0),
                                                F()
                                        }))
                }
                , w = function () {
                    for (var e = "", i = "", n = f(), o = 0; o < n; o++)
                        i = "",
                            s.settings.buildPager && t.isFunction(s.settings.buildPager) || s.settings.pagerCustom ? (i = s.settings.buildPager(o),
                                s.pagerEl.addClass("bx-custom-pager")) : (i = o + 1,
                                    s.pagerEl.addClass("bx-default-pager")),
                            e += '<div class="bx-pager-item"><a href="" data-slide-index="' + o + '" class="bx-pager-link">' + i + "</a></div>";
                    s.pagerEl.html(e)
                }
                , b = function () {
                    s.settings.pagerCustom ? s.pagerEl = t(s.settings.pagerCustom) : (s.pagerEl = t('<div class="bx-pager" />'),
                        s.settings.pagerSelector ? t(s.settings.pagerSelector).html(s.pagerEl) : s.controls.el.addClass("bx-has-pager").append(s.pagerEl),
                        w()),
                        s.pagerEl.on("click touchend", "a", I)
                }
                , C = function () {
                    s.controls.next = t('<a class="bx-next" href="">' + s.settings.nextText + "</a>"),
                        s.controls.prev = t('<a class="bx-prev" href="">' + s.settings.prevText + "</a>"),
                        s.controls.next.on("click touchend", P),
                        s.controls.prev.on("click touchend", E),
                        s.settings.nextSelector && t(s.settings.nextSelector).append(s.controls.next),
                        s.settings.prevSelector && t(s.settings.prevSelector).append(s.controls.prev),
                        s.settings.nextSelector || s.settings.prevSelector || (s.controls.directionEl = t('<div class="bx-controls-direction" />'),
                            s.controls.directionEl.append(s.controls.prev).append(s.controls.next),
                            s.controls.el.addClass("bx-has-controls-direction").append(s.controls.directionEl))
                }
                , T = function () {
                    s.controls.start = t('<div class="bx-controls-auto-item"><a class="bx-start" href="">' + s.settings.startText + "</a></div>"),
                        s.controls.stop = t('<div class="bx-controls-auto-item"><a class="bx-stop" href="">' + s.settings.stopText + "</a></div>"),
                        s.controls.autoEl = t('<div class="bx-controls-auto" />'),
                        s.controls.autoEl.on("click", ".bx-start", M),
                        s.controls.autoEl.on("click", ".bx-stop", y),
                        s.settings.autoControlsCombine ? s.controls.autoEl.append(s.controls.start) : s.controls.autoEl.append(s.controls.start).append(s.controls.stop),
                        s.settings.autoControlsSelector ? t(s.settings.autoControlsSelector).html(s.controls.autoEl) : s.controls.el.addClass("bx-has-controls-auto").append(s.controls.autoEl),
                        D(s.settings.autoStart ? "stop" : "start")
                }
                , k = function () {
                    s.children.each(function (e) {
                        var i = t(this).find("img:first").attr("title");
                        void 0 !== i && ("" + i).length && t(this).append('<div class="bx-caption"><span>' + i + "</span></div>")
                    })
                }
                , P = function (t) {
                    t.preventDefault(),
                        s.controls.el.hasClass("disabled") || (s.settings.auto && s.settings.stopAutoOnClick && o.stopAuto(),
                            o.goToNextSlide())
                }
                , E = function (t) {
                    t.preventDefault(),
                        s.controls.el.hasClass("disabled") || (s.settings.auto && s.settings.stopAutoOnClick && o.stopAuto(),
                            o.goToPrevSlide())
                }
                , M = function (t) {
                    o.startAuto(),
                        t.preventDefault()
                }
                , y = function (t) {
                    o.stopAuto(),
                        t.preventDefault()
                }
                , I = function (e) {
                    var i, n;
                    e.preventDefault(),
                        s.controls.el.hasClass("disabled") || (s.settings.auto && s.settings.stopAutoOnClick && o.stopAuto(),
                            i = t(e.currentTarget),
                            void 0 !== i.attr("data-slide-index") && (n = parseInt(i.attr("data-slide-index"))) !== s.active.index && o.goToSlide(n))
                }
                , z = function (e) {
                    var i = s.children.length;
                    if ("short" === s.settings.pagerType)
                        return s.settings.maxSlides > 1 && (i = Math.ceil(s.children.length / s.settings.maxSlides)),
                            void s.pagerEl.html(e + 1 + s.settings.pagerShortSeparator + i);
                    s.pagerEl.find("a").removeClass("active"),
                        s.pagerEl.each(function (i, n) {
                            t(n).find("a").eq(e).addClass("active")
                        })
                }
                , A = function () {
                    if (s.settings.infiniteLoop) {
                        var t = "";
                        0 === s.active.index ? t = s.children.eq(0).position() : s.active.index === f() - 1 && s.carousel ? t = s.children.eq((f() - 1) * x()).position() : s.active.index === s.children.length - 1 && (t = s.children.eq(s.children.length - 1).position()),
                            t && ("horizontal" === s.settings.mode ? S(-t.left, "reset", 0) : "vertical" === s.settings.mode && S(-t.top, "reset", 0))
                    }
                    s.working = !1,
                        s.settings.onSlideAfter.call(o, s.children.eq(s.active.index), s.oldIndex, s.active.index)
                }
                , D = function (t) {
                    s.settings.autoControlsCombine ? s.controls.autoEl.html(s.controls[t]) : (s.controls.autoEl.find("a").removeClass("active"),
                        s.controls.autoEl.find("a:not(.bx-" + t + ")").addClass("active"))
                }
                , q = function () {
                    1 === f() ? (s.controls.prev.addClass("disabled"),
                        s.controls.next.addClass("disabled")) : !s.settings.infiniteLoop && s.settings.hideControlOnEnd && (0 === s.active.index ? (s.controls.prev.addClass("disabled"),
                            s.controls.next.removeClass("disabled")) : s.active.index === f() - 1 ? (s.controls.next.addClass("disabled"),
                                s.controls.prev.removeClass("disabled")) : (s.controls.prev.removeClass("disabled"),
                                    s.controls.next.removeClass("disabled")))
                }
                , H = function () {
                    o.startAuto()
                }
                , W = function () {
                    o.stopAuto()
                }
                , L = function () {
                    s.settings.autoDelay > 0 ? setTimeout(o.startAuto, s.settings.autoDelay) : (o.startAuto(),
                        t(window).focus(H).blur(W)),
                        s.settings.autoHover && o.hover(function () {
                            s.interval && (o.stopAuto(!0),
                                s.autoPaused = !0)
                        }, function () {
                            s.autoPaused && (o.startAuto(!0),
                                s.autoPaused = null)
                        })
                }
                , O = function () {
                    var e, i, n, r, a, l, d, c, g = 0;
                    "next" === s.settings.autoDirection ? o.append(s.children.clone().addClass("bx-clone")) : (o.prepend(s.children.clone().addClass("bx-clone")),
                        e = s.children.first().position(),
                        g = "horizontal" === s.settings.mode ? -e.left : -e.top),
                        S(g, "reset", 0),
                        s.settings.pager = !1,
                        s.settings.controls = !1,
                        s.settings.autoControls = !1,
                        s.settings.tickerHover && (s.usingCSS ? (r = "horizontal" === s.settings.mode ? 4 : 5,
                            s.viewport.hover(function () {
                                i = o.css("-" + s.cssPrefix + "-transform"),
                                    n = parseFloat(i.split(",")[r]),
                                    S(n, "reset", 0)
                            }, function () {
                                c = 0,
                                    s.children.each(function (e) {
                                        c += "horizontal" === s.settings.mode ? t(this).outerWidth(!0) : t(this).outerHeight(!0)
                                    }),
                                    a = s.settings.speed / c,
                                    l = "horizontal" === s.settings.mode ? "left" : "top",
                                    d = a * (c - Math.abs(parseInt(n))),
                                    F(d)
                            })) : s.viewport.hover(function () {
                                o.stop()
                            }, function () {
                                c = 0,
                                    s.children.each(function (e) {
                                        c += "horizontal" === s.settings.mode ? t(this).outerWidth(!0) : t(this).outerHeight(!0)
                                    }),
                                    a = s.settings.speed / c,
                                    l = "horizontal" === s.settings.mode ? "left" : "top",
                                    d = a * (c - Math.abs(parseInt(o.css(l)))),
                                    F(d)
                            })),
                        F()
                }
                , F = function (t) {
                    var e, i, n, r = t || s.settings.speed, a = {
                        left: 0,
                        top: 0
                    }, l = {
                        left: 0,
                        top: 0
                    };
                    "next" === s.settings.autoDirection ? a = o.find(".bx-clone").first().position() : l = s.children.first().position(),
                        e = "horizontal" === s.settings.mode ? -a.left : -a.top,
                        i = "horizontal" === s.settings.mode ? -l.left : -l.top,
                        n = {
                            resetValue: i
                        },
                        S(e, "ticker", r, n)
                }
                , N = function (e) {
                    var i = t(window)
                        , n = {
                            top: i.scrollTop(),
                            left: i.scrollLeft()
                        }
                        , s = e.offset();
                    return n.right = n.left + i.width(),
                        n.bottom = n.top + i.height(),
                        s.right = s.left + e.outerWidth(),
                        s.bottom = s.top + e.outerHeight(),
                        !(n.right < s.left || n.left > s.right || n.bottom < s.top || n.top > s.bottom)
                }
                , B = function (t) {
                    var e = document.activeElement.tagName.toLowerCase();
                    if (null == new RegExp(e, ["i"]).exec("input|textarea") && N(o)) {
                        if (39 === t.keyCode)
                            return P(t),
                                !1;
                        if (37 === t.keyCode)
                            return E(t),
                                !1
                    }
                }
                , X = function () {
                    s.touch = {
                        start: {
                            x: 0,
                            y: 0
                        },
                        end: {
                            x: 0,
                            y: 0
                        }
                    },
                        s.viewport.on("touchstart MSPointerDown pointerdown", Y),
                        s.viewport.on("click", ".bxslider a", function (t) {
                            s.viewport.hasClass("click-disabled") && (t.preventDefault(),
                                s.viewport.removeClass("click-disabled"))
                        })
                }
                , Y = function (t) {
                    if ("touchstart" === t.type || 0 === t.button)
                        if (t.preventDefault(),
                            s.controls.el.addClass("disabled"),
                            s.working)
                            s.controls.el.removeClass("disabled");
                        else {
                            s.touch.originalPos = o.position();
                            var e = t.originalEvent
                                , i = void 0 !== e.changedTouches ? e.changedTouches : [e]
                                , n = "function" == typeof PointerEvent;
                            if (n && void 0 === e.pointerId)
                                return;
                            s.touch.start.x = i[0].pageX,
                                s.touch.start.y = i[0].pageY,
                                s.viewport.get(0).setPointerCapture && (s.pointerId = e.pointerId,
                                    s.viewport.get(0).setPointerCapture(s.pointerId)),
                                s.originalClickTarget = e.originalTarget || e.target,
                                s.originalClickButton = e.button,
                                s.originalClickButtons = e.buttons,
                                s.originalEventType = e.type,
                                s.hasMove = !1,
                                s.viewport.on("touchmove MSPointerMove pointermove", R),
                                s.viewport.on("touchend MSPointerUp pointerup", Z),
                                s.viewport.on("MSPointerCancel pointercancel", V)
                        }
                }
                , V = function (t) {
                    t.preventDefault(),
                        S(s.touch.originalPos.left, "reset", 0),
                        s.controls.el.removeClass("disabled"),
                        s.viewport.off("MSPointerCancel pointercancel", V),
                        s.viewport.off("touchmove MSPointerMove pointermove", R),
                        s.viewport.off("touchend MSPointerUp pointerup", Z),
                        s.viewport.get(0).releasePointerCapture && s.viewport.get(0).releasePointerCapture(s.pointerId)
                }
                , R = function (t) {
                    var e = t.originalEvent
                        , i = void 0 !== e.changedTouches ? e.changedTouches : [e]
                        , n = Math.abs(i[0].pageX - s.touch.start.x)
                        , o = Math.abs(i[0].pageY - s.touch.start.y)
                        , r = 0
                        , a = 0;
                    s.hasMove = !0,
                        3 * n > o && s.settings.preventDefaultSwipeX ? t.preventDefault() : 3 * o > n && s.settings.preventDefaultSwipeY && t.preventDefault(),
                        "touchmove" !== t.type && t.preventDefault(),
                        "fade" !== s.settings.mode && s.settings.oneToOneTouch && ("horizontal" === s.settings.mode ? (a = i[0].pageX - s.touch.start.x,
                            r = s.touch.originalPos.left + a) : (a = i[0].pageY - s.touch.start.y,
                                r = s.touch.originalPos.top + a),
                            S(r, "reset", 0))
                }
                , Z = function (e) {
                    e.preventDefault(),
                        s.viewport.off("touchmove MSPointerMove pointermove", R),
                        s.controls.el.removeClass("disabled");
                    var i = e.originalEvent
                        , n = void 0 !== i.changedTouches ? i.changedTouches : [i]
                        , r = 0
                        , a = 0;
                    s.touch.end.x = n[0].pageX,
                        s.touch.end.y = n[0].pageY,
                        "fade" === s.settings.mode ? (a = Math.abs(s.touch.start.x - s.touch.end.x)) >= s.settings.swipeThreshold && (s.touch.start.x > s.touch.end.x ? o.goToNextSlide() : o.goToPrevSlide(),
                            o.stopAuto()) : ("horizontal" === s.settings.mode ? (a = s.touch.end.x - s.touch.start.x,
                                r = s.touch.originalPos.left) : (a = s.touch.end.y - s.touch.start.y,
                                    r = s.touch.originalPos.top),
                                !s.settings.infiniteLoop && (0 === s.active.index && a > 0 || s.active.last && a < 0) ? S(r, "reset", 200) : Math.abs(a) >= s.settings.swipeThreshold ? (a < 0 ? o.goToNextSlide() : o.goToPrevSlide(),
                                    o.stopAuto()) : S(r, "reset", 200)),
                        s.viewport.off("touchend MSPointerUp pointerup", Z),
                        s.viewport.get(0).releasePointerCapture && s.viewport.get(0).releasePointerCapture(s.pointerId),
                        !1 !== s.hasMove || 0 !== s.originalClickButton && "touchstart" !== s.originalEventType || t(s.originalClickTarget).trigger({
                            type: "click",
                            button: s.originalClickButton,
                            buttons: s.originalClickButtons
                        })
                }
                , U = function (e) {
                    if (s.initialized)
                        if (s.working)
                            window.setTimeout(U, 10);
                        else {
                            var i = t(window).width()
                                , n = t(window).height();
                            r === i && a === n || (r = i,
                                a = n,
                                o.redrawSlider(),
                                s.settings.onSliderResize.call(o, s.active.index))
                        }
                }
                , j = function (t) {
                    var e = v();
                    s.settings.ariaHidden && !s.settings.ticker && (s.children.attr("aria-hidden", "true"),
                        s.children.slice(t, t + e).attr("aria-hidden", "false"))
                }
                , Q = function (t) {
                    return t < 0 ? s.settings.infiniteLoop ? f() - 1 : s.active.index : t >= f() ? s.settings.infiniteLoop ? 0 : s.active.index : t
                };
            return o.goToSlide = function (e, i) {
                var n, r, a, l, d = !0, c = 0, g = {
                    left: 0,
                    top: 0
                }, u = null;
                if (s.oldIndex = s.active.index,
                    s.active.index = Q(e),
                    !s.working && s.active.index !== s.oldIndex) {
                    if (s.working = !0,
                        void 0 !== (d = s.settings.onSlideBefore.call(o, s.children.eq(s.active.index), s.oldIndex, s.active.index)) && !d)
                        return s.active.index = s.oldIndex,
                            void (s.working = !1);
                    "next" === i ? s.settings.onSlideNext.call(o, s.children.eq(s.active.index), s.oldIndex, s.active.index) || (d = !1) : "prev" === i && (s.settings.onSlidePrev.call(o, s.children.eq(s.active.index), s.oldIndex, s.active.index) || (d = !1)),
                        s.active.last = s.active.index >= f() - 1,
                        (s.settings.pager || s.settings.pagerCustom) && z(s.active.index),
                        s.settings.controls && q(),
                        "fade" === s.settings.mode ? (s.settings.adaptiveHeight && s.viewport.height() !== p() && s.viewport.animate({
                            height: p()
                        }, s.settings.adaptiveHeightSpeed),
                            s.children.filter(":visible").fadeOut(s.settings.speed).css({
                                zIndex: 0
                            }),
                            s.children.eq(s.active.index).css("zIndex", s.settings.slideZIndex + 1).fadeIn(s.settings.speed, function () {
                                t(this).css("zIndex", s.settings.slideZIndex),
                                    A()
                            })) : (s.settings.adaptiveHeight && s.viewport.height() !== p() && s.viewport.animate({
                                height: p()
                            }, s.settings.adaptiveHeightSpeed),
                                !s.settings.infiniteLoop && s.carousel && s.active.last ? "horizontal" === s.settings.mode ? (u = s.children.eq(s.children.length - 1),
                                    g = u.position(),
                                    c = s.viewport.width() - u.outerWidth()) : (n = s.children.length - s.settings.minSlides,
                                        g = s.children.eq(n).position()) : s.carousel && s.active.last && "prev" === i ? (r = 1 === s.settings.moveSlides ? s.settings.maxSlides - x() : (f() - 1) * x() - (s.children.length - s.settings.maxSlides),
                                            u = o.children(".bx-clone").eq(r),
                                            g = u.position()) : "next" === i && 0 === s.active.index ? (g = o.find("> .bx-clone").eq(s.settings.maxSlides).position(),
                                                s.active.last = !1) : e >= 0 && (l = e * parseInt(x()),
                                                    g = s.children.eq(l).position()),
                                void 0 !== g && (a = "horizontal" === s.settings.mode ? -(g.left - c) : -g.top,
                                    S(a, "slide", s.settings.speed)),
                                s.working = !1),
                        s.settings.ariaHidden && j(s.active.index * x())
                }
            }
                ,
                o.goToNextSlide = function () {
                    if ((s.settings.infiniteLoop || !s.active.last) && !0 !== s.working) {
                        var t = parseInt(s.active.index) + 1;
                        o.goToSlide(t, "next")
                    }
                }
                ,
                o.goToPrevSlide = function () {
                    if ((s.settings.infiniteLoop || 0 !== s.active.index) && !0 !== s.working) {
                        var t = parseInt(s.active.index) - 1;
                        o.goToSlide(t, "prev")
                    }
                }
                ,
                o.startAuto = function (t) {
                    s.interval || (s.interval = setInterval(function () {
                        "next" === s.settings.autoDirection ? o.goToNextSlide() : o.goToPrevSlide()
                    }, s.settings.pause),
                        s.settings.onAutoChange.call(o, !0),
                        s.settings.autoControls && !0 !== t && D("stop"))
                }
                ,
                o.stopAuto = function (t) {
                    s.autoPaused && (s.autoPaused = !1),
                        s.interval && (clearInterval(s.interval),
                            s.interval = null,
                            s.settings.onAutoChange.call(o, !1),
                            s.settings.autoControls && !0 !== t && D("start"))
                }
                ,
                o.getCurrentSlide = function () {
                    return s.active.index
                }
                ,
                o.getCurrentSlideElement = function () {
                    return s.children.eq(s.active.index)
                }
                ,
                o.getSlideElement = function (t) {
                    return s.children.eq(t)
                }
                ,
                o.getSlideCount = function () {
                    return s.children.length
                }
                ,
                o.isWorking = function () {
                    return s.working
                }
                ,
                o.redrawSlider = function () {
                    s.children.add(o.find(".bx-clone")).outerWidth(h()),
                        s.viewport.css("height", p()),
                        s.settings.ticker || m(),
                        s.active.last && (s.active.index = f() - 1),
                        s.active.index >= f() && (s.active.last = !0),
                        s.settings.pager && !s.settings.pagerCustom && (w(),
                            z(s.active.index)),
                        s.settings.ariaHidden && j(s.active.index * x())
                }
                ,
                o.destroySlider = function () {
                    s.initialized && (s.initialized = !1,
                        t(".bx-clone", this).remove(),
                        s.children.each(function () {
                            void 0 !== t(this).data("origStyle") ? t(this).attr("style", t(this).data("origStyle")) : t(this).removeAttr("style")
                        }),
                        void 0 !== t(this).data("origStyle") ? this.attr("style", t(this).data("origStyle")) : t(this).removeAttr("style"),
                        t(this).unwrap().unwrap(),
                        s.controls.el && s.controls.el.remove(),
                        s.controls.next && s.controls.next.remove(),
                        s.controls.prev && s.controls.prev.remove(),
                        s.pagerEl && s.settings.controls && !s.settings.pagerCustom && s.pagerEl.remove(),
                        t(".bx-caption", this).remove(),
                        s.controls.autoEl && s.controls.autoEl.remove(),
                        clearInterval(s.interval),
                        s.settings.responsive && t(window).off("resize", U),
                        s.settings.keyboardEnabled && t(document).off("keydown", B),
                        t(this).removeData("bxSlider"),
                        t(window).off("blur", W).off("focus", H))
                }
                ,
                o.reloadSlider = function (e) {
                    void 0 !== e && (n = e),
                        o.destroySlider(),
                        l(),
                        t(o).data("bxSlider", this)
                }
                ,
                l(),
                t(o).data("bxSlider", this),
                this
        }
    }
}(jQuery);
